package com.dragon.modules.yuegou.service.coupon;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.common.web.PageRequest;
import com.dragon.modules.yuegou.entity.coupon.MerchantCouponEntity;
import com.dragon.modules.yuegou.model.coupon.MerchantCoupon;

import java.util.List;

/**
 * 商户优惠券（商户购买优惠券，然后送给会员） 服务接口
 *
 * @author pbuilder generated
 * @date 2019-02-28 18:30:17
 * @version 2.0
 */
public interface MerchantCouponService extends IService<MerchantCouponEntity> {

	/**
	 * 给商户创建优惠券<br>
	 * 注意：本方法不负责扣库存
	 * 
	 * @param orderNo 订单号
	 * @param coupon  优惠券信息（必须提供couponTemplateId、total字段）
	 * @return 优惠券
	 */
	MerchantCoupon createMerchantCoupon(String orderNo, String merchantUserId, MerchantCoupon coupon);

	/**
	 * 批量给商户创建优惠券<br>
	 * 注意：本方法不负责扣库存
	 * 
	 * @param orderNo 订单号
	 * @param coupons 优惠券列表（必须提供couponTemplateId、total字段）
	 * @return 商户优惠券列表
	 */
	List<MerchantCoupon> bachCreateCoupon(String orderNo, String merchantUserId, List<MerchantCoupon> coupons);


	/**
	 * 停车券授权发放二维码
	 * @param merchantCouponId
	 * @return
	 */
	String grantQRcode(String merchantCouponId);
	
	/**
	 * 停车券授权发放二维码（悦商惠APP）
	 * @param merchantCouponId
	 * @param type 0-停车券-PARK、1-商品券-PRODUCT、2-优惠券-COUPON
	 * @return
	 */
	MerchantCoupon getGrantQRcode(String merchantCouponId, Integer type);

	/**
	 * 商户停车券列表
	 * @param page
	 * @param merchantId
	 * @return
	 */
	IPage<MerchantCoupon> couponRecords(PageRequest page, String merchantId);

	/**
	 * 悦商圈APP-商户停车券列表
	 * @param page
	 * @param merchantId
	 * @return
	 */
	IPage<MerchantCoupon> yshAppCouponRecords(PageRequest page, String merchantId);

	IPage<MerchantCoupon> merchantGrantList(PageRequest page,String merchantId);

	/**
	 * 停车券授权发放二维码展示页
	 * @param merchantCouponId
	 * @return
	 */
	MerchantCoupon showGiveCode(String merchantCouponId);

	/**
	 * 停车券授权发放二维码展示页
	 * @param parkApplyId
	 * @return
	 */
	MerchantCoupon showGiveCodeByParkApply(String parkApplyId);
}